package String;

/**
 * String 是不变对象，因此不适合频繁修改内容，开销大，性能差
 */
public class StringDemo2 {
    public static void main(String[] args) {
        // 例如,由于每次拼接都会创建新的对象
        // 但是，在内存常量池当中最开始的 String"hello"会存在
        // 每次拼接都会在常量池当中创建新的对象，
        // 在创建下一次对象的时候，垃圾回收装置可能不能及时删除之前的对象占用的内存
        // 那么就会造成内存占满了，出现异常
        String s1 = "hello";
        for(int i=0 ;i<1000000000;i++){
            s1 = s1 + "a";  // 虽然没有崩溃，但是异常慢，内存中创建的对象逐步增长

            s1 = s1 + s1;  // 造成崩溃，内存中创建的对象指数增长
            System.out.println(s1);
        }
    }
}
